<?php

	try {

	    require_once '../../controller/controller.inc.php';
		$usuario->isAuthorizedView(Operacao::SELECAO_VISUALIZAR_CANDIDATO);
		
		$info = NULL;
		$dadosConsist = NULL;
		
		if (!isset($_GET['id']) AND !isset($_GET['selecaoid'])) {
		    header('Location: ../selecao/pesquisar.php');
		}
		
		if ( isset( $_GET['id'] )){
		    $selecaoCandidato = new SelecaoCandidato( $_GET['id'] );
		    $selecao = new Selecao( $selecaoCandidato->selecaoid );
		}
		elseif ( isset( $_GET['selecaoid'] ) ){
		    $selecao = new Selecao( $_GET['selecaoid'] );
		    $selecaoCandidato = $selecao->getCandidato();
		    if ( $selecaoCandidato->selecaocandidatoid == NULL ){
		        $info = 'Esta seleção ainda não possui nenhum candidato.';
		    } else {
		        
		    }
		} else {
		    throw new Exception( 'Candidato não encontrado.' );
		}
		
		$vaga = new Vaga( $selecao->vagaid );
	    $contratoid = $vaga->contratoid;
	    $salario = new Salario( NULL, $contratoid, $vaga->cargoid );
	    $candidato = new Candidato( $selecaoCandidato->candidatoid );
	    $listaHistorico = $selecaoCandidato->getHistorico();
	    
	    // Verifica se há condições de encaminhar o candidato para vinculação
	    if ($selecao->isVisible($selecaoCandidato->selecaocandidatoid, 
	        Operacao::SELECAO_ENCAMINHARVINCULACAO)) {
    	    try {
    	        $selecao->verificarVagaEncaminharVinculacao();
    	    } 
    	    catch (exception $e) {
    	        $info = $e->getMessage();
    	    }
	    }
	    
	    #Autorização da Vaga
	    if(!$usuario->isVagaPermitida($vaga->vagaid)){
	          header('Location:pesquisar.php?message=unauthorized&vagaid='.$vaga->vagaid);  
	    }
	    
	    $form = array ("campo"=>"", "operador"=>"", "valor"=>"");
	    
	    //Dados Consist
	    if ( $pfcid == PerfilComportamental::Gabinete AND $candidato->candidatoid ){
	        $dadosConsist = $candidato->getDadosConsist();
	    }
	    
	    $headerUrl = NULL;
	    if ( isset ( $_POST['btnAcao'] ) ){
	        $acao = $_POST['btnAcao'];
	        switch($acao){
	        	case Operacao::SELECAO_ENCAMINHARNUCLEOGESTOR:
	        	    $selecao->aprovarCandidato( $selecaoCandidato->selecaocandidatoid, $_POST['txtObservacao'] );
	        	    break;
        	    case Operacao::SELECAO_REPROVARCANDIDATO:
        	        $selecao->recusarCandidato( $selecaoCandidato->selecaocandidatoid, $_POST['txtObservacao'] );
        	        break;
        	    case Operacao::SELECAO_REPROVARCANDIDATOCPFINVALIDO:
	        	    $selecao->reprovarCandidatoCPFInvalido( $selecaoCandidato->selecaocandidatoid, $_POST['txtObservacao'] );
	        	    $headerUrl = 'location: pesquisar.php?message=alteracao';
	        	    break;
        	    case Operacao::SELECAO_ENCAMINHARVINCULACAO:
        	        //Verifica a seleção para encaminhar para vinculação
        	        $selecao->verificarVagaEncaminharVinculacao();
        	        
        	        if ( !$candidato->rg OR $candidato->nascimento ){
        	            $_SESSION['parecer'] = $_POST['txtObservacao'];
        	            $headerUrl = 'location: candidatoDadosComplementares.php?id=' . $selecaoCandidato->selecaocandidatoid;
        	        }
        	        else {
	        	        $selecao->encaminharCandidatoVinculacao( $selecaoCandidato->selecaocandidatoid, $_POST['txtObservacao'] );
        	        }
        	        break;
        	    case Operacao::SELECAO_VINCULARCANDIDATO:
                    $headerUrl = 'location: candidatoVincular.php?id=' . $selecaoCandidato->selecaocandidatoid;
        	        break;
    	        case Operacao::SELECAO_CANDIDATONAOCOMPARECEU:
	        	    $selecao->informarNaoComparecimento( $selecaoCandidato->selecaocandidatoid );
	        	    break;
        	    case Operacao::SELECAO_CANDIDATOVAICOMPARECER:
	        	    $selecao->informarComparecimento( $selecaoCandidato->selecaocandidatoid, $_POST['txtObservacao'] );
	        	    break;
        	    case Operacao::SELECAO_CONFIRMARNAOCOMPARECIMENTO:
	        	    $selecao->confirmarNaoComparecimento( $selecaoCandidato->selecaocandidatoid, $_POST['txtObservacao'] );
	        	    break;
        	    case Operacao::SELECAO_CANCELARSELECAO:
        	        $selecao->cancelarSelecao( $selecaoCandidato->selecaocandidatoid );
        	        $headerUrl = 'location: pesquisar.php?message=alteracao';
	        	    break;
        	    case Operacao::SELECAO_REDUZIRVAGANOPT:
        	        if ( !isset($_POST['txtObservacao']) && $selecaoCandidato->selecaocandidatoid == NULL){
        	            $_POST['txtObservacao'] = '';
        	        }
        	        $selecao->reduzirVagaNoPT( $selecaoCandidato->selecaocandidatoid, $_POST['txtObservacao'] );
        	        $headerUrl = 'location: pesquisar.php?message=alteracao';
	        	    break;
	        }
	        if ( $headerUrl == NULL ){
	            header( 'location: candidatoSelecao.php?selecaoid=' . $selecao->selecaoid . '&message=insercao' );
	        } else {
	            header( $headerUrl );
	        }
	    }
	    
	    $lista = listar($form);
    
	} catch(exception $e){
		
		$erro = $e->getMessage();
		
	}
	
	function listar($form){
		
		$vw = new ViewVagaCandidato();
		$criterio = $form;
		$criterio['precondicao'] = "vagaativa like 'NAO' AND lotacao IS NOT NULL";
		$criterio['campos'] = 'vagaid, numerosiof, cargo, lotacao, contratoid, vagaativa, salario';
		
		return $vw->listar($criterio);		   
	}
	
	

?>